package com.xxzuibang.day8.方法的重载;

/**
 * 可变参数
 * java允许同一个类中多个同名同功能但是参数个数不同的方法，封装成一个方法，就可以通过可变参数实现
 * 基本语法：
 * 访问修饰符  返回类型  方法名（数据类型  形参名）
 */
public class Demo02 {
    public static void main(String[] args) {
        SxMethod sxMethod=new SxMethod();
        System.out.println(sxMethod.sum(1,2,3,4,5,6,7,8));

    }
}

class SxMethod{
    //计算2个数的和，3个数的和
    public  int sun(int n1,int n2){
        return n1+n2;
    }
    public int sun(int n1,int n2,int n3){
        return n1+n2+n3;
    }
    public int sun(int n1,int n2,int n3,int n4){
        return n1+n2+n3+n4;
    }

    //上面的三个方法名称相同，功能相同，参数个数不同，使用可变参数的优化
//    1. int  表示接收到是可变参数，类型是int，也就是可以接收多个int（0-多）
//    2.使用可变参数，可以当做数组来使用，也就是nums可以当做数组
//    3.遍历nums求和
    public  int sum(int ...nums){
        int res=0;
        for (int i = 0; i < nums.length; i++) {
            res+=nums[i];
        }
        return res;
    }
}

